#ifndef __VOLUME_KEY_PRIVATE_H__
#define __VOLUME_KEY_PRIVATE_H__

#include <remconcoreapitargetobserver.h>    // link against RemConCoreApi.lib


class VolumeKey;
class CRemConInterfaceSelector;
class CRemConCoreApiTarget;

class CVolumeKeyPrivate : public MRemConCoreApiTargetObserver
	{
	public:
		void Listen();
                void SetObserver( VolumeKey* wrapper );
        static CVolumeKeyPrivate* NewL( VolumeKey* wrapper );

                ~CVolumeKeyPrivate();

	private:
                CVolumeKeyPrivate( VolumeKey* wrapper );
		void ConstructL();

        // From MRemConCoreApiTargetObserver
        public:
                void MrccatoCommand(TRemConCoreApiOperationId aOperationId,
                                     TRemConCoreApiButtonAction aButtonAct);
                // following functions from MRemConCoreApiTargetObserver are not needed
                // in this case -> use empty implementations for these:
                // MrccatoPlay
                // MrccatoTuneFunction
                // MrccatoSelectDiskFunction
                // MrccatoSelectAvInputFunction
                // MrccatoSelectAudioInputFunction

	private:
                VolumeKey* q_ptr;
                CRemConInterfaceSelector* iInterfaceSelector;
                CRemConCoreApiTarget*     iCoreTarget;
	};

#endif // __VOLUME_KEY_PRIVATE_H__

